sztucznainteligencjafandomcom_pl-20200213-history
Sieć Hopfielda
Na rysunku 6.27 przedstawiono schemat sieci Hopfielda. Jest to sieć jednowarstwowa o regularnej budowie, składająca się z wielu neuronów połączonych każdy z każdym. Nie istnieją sprzężenia zwrotne obejmujące ten sam neuron. Oznacza to, że sygnał wyjściowy danego neuronu nie trafia na jego wejście, a więc wartości wag wa są równe 0. Wagi w tej sieci są symetryczne, tzn. waga wkj łącząca neuron k z neuronem j jest równa wadze Wjk łączącej neuron j z neuronem k. Sieć Hopfielda podczas uczenia modyfikuje swoje wagi wy w zależności od wartości wektora uczącego x. W trybie odtworzeniowym wagi nie ulegają modyfikacjom, natomiast sygnał wejściowy pobudza sieć, która poprzez sprzężenie zwrotne wielokrotnie przyjmuje na swoje wejście sygnał wyjściowy, aż do ustabilizowania odpowiedzi. Jeżeli przyjmiemy, że funkcja aktywacji neuronów jest typu signum, to działanie sieci w kroku t możemy zapisać jako yk(t) = sgn( wkjy}{t - 1) + k = 1........ N, (6.169) V=1 J** ' przy czym y, (0) = x}. Sygnał na wyjściu będzie zmieniał się tak długo, aż w kroku / — 1 będzie równy sygnałowi w kroku /, a więc yk(t) = >*(/ — 1) dla wszystkich Nneuronów wchodzących w skład sieci. Wykażemy teraz, że jeżeli wagi w sieci Hopfielda są symetryczne, to sieć ta zawsze się stabilizuje. Oznaczmy wyjście części liniowej A-tego neuronu w chwili / + 1 przez sk(t 4- 1). Możemy zapisać :::: n st(r+ 1)= £ wk)yj(t) + 0k, (6.170) J=iJ¥* gdzie Ok jest wartością progową neuronu. Funkcję aktywacji można zdefiniować następująco: »'(ł+1) = sgn(5*(f+l)). (6.171) Sieć jest ustabilizowana, jeżeli zachodzi y*(0 = y*(/-i) (6.172) dla każdego neuronu. Przyjmując funkcję aktywacji wyrażoną wzorem (6.171), zależność (6.172) zapiszemy jako :::: yk(t) = sgn(**(f - O). (6.173) Stan energetyczny sieci wyraża funkcja Lapunowa w postaci ::: E = - r >7.v* wkj ~ • (6-174) z j k k m Zauważmy, że funkcja energetyczna (6.174) jest ograniczona od dołu. przy czym wagi i wartości progowe są stałe. Łatwo sprawdzić, że zmiana energii AE = -AyJ ^yjWkj + 0*) (6.175) jest zawsze ujemna, gdy sygnał yk zmienia się według zależności (6.171). Stąd funkcja energetyczna E jest funkcją malejącą w kolejnych krokach t. Dlatego też możemy być pewni, że osiągnie minimum, w którym sieć będzie stabilna. Omówimy teraz sposób doboru wag w sieci Hopfielda. Jedną z metod uczenia sieci Hopfielda jest uogólniona reguła Hebba. Zgodnie z tą regułą wagi modyfikowane są według zależności ::::: 1 M (6176) w której x' = f.v'p ..., jeJ], / = 1,.... M. Niestety, nie daje ona najlepszych efektów, gdyż jak można wykazać, pojemność sieci (maksymalna liczba wzorców, którą sieć jest w stanie zapamiętać) uczonej za pomocą tej reguły stanowi zaledwie 13,8% liczby neuronów. Dlatego w praktyce stosuje się częściej metodę pseudoinwersji. Niech X będzie macierzą M wektorów uczących, tzn. X = x,v/|. Zakłada się, że celem uczenia sieci jest taki dobór wag, aby po podaniu na jej wejście sygnału x. na wyjściu powstał ten sam sygnał, tzn. WX = X, (6.177) gdzie W oznacza macierz wag o wymiarach n x /?. Rozwiązanie układu równań (6.177) jest następujące: VV = XX+, (6.178) gdzie znak + oznacza pseudoinwersję. Jeżeli przyjmiemy, że wektory uczące są liniowo niezależne, to równanie (6.178) przybierze postać :::: \V = X(XrX)-,X7'. (6.179) Przykład 6.6 Przeprowadzimy teraz próbę nauczenia sieci Hopfielda rozpoznawania trzech cyfr: 1, 4, 7. Doświadczenie to przeprowadzimy w środowisku Matlab. Na podstawie wzorców przedstawionych na rysunku 6.28 tworzymy ciąg uczący (białe pola oznaczamy przez -1 czarne przez 1) Rys. 6.28. Wzorce uczące do przykładu 6.6 X(l) = [-1-11-1-11-1-11-1-11 x(2) = (1-11111-1-11-1-11] x(3) = -1-11-1-11-1-11 Następnie uczymy sieć Hopfielda za pomocą powyższych wzorców. Aby sprawdzić poprawność działania nauczonej sieci, na jej wejście podajemy kolejno sygnały uczące. Jak wynika z tabeli 6.5, sieć perfekcyjnie rozwiązała zagadnienie asocjacji dla nieza- szumionych wektorów uczących. |} Teraz zaszumimy wzorce (rys. 6.29) i zobaczymy, jaka będzie odpowiedź sieci. W przypadku zaszumienia sygnały wejściowe \z są postaci Rys. 6.29. Zaszumione wzorce uczące do przykładu 6.6 X-(l) = -1-11-1-11-111-1-11 xr(2) = 1-111-11-1-11-1-11 x.(3) = 1-11-1-11-1-11-1-11 Efekt zaszumienia przedstawia tabela 6.6. |} Dla trzeciego zaszumionego wektora wyjście sieci po 12 iteracjach jeszcze się nie ustabilizowało, co oznacza, że sieć nic mogła rozpoznać zniekształconej próbki. 6.4.2. Sieć Hamminga Przedstawiona na rysunku 6.30 struktura sieci Hamminga jest siecią trój warstwową, stosowaną do klasyfikacji obrazów. W warstwie pierwszej znajduje się p neuronów, które wyznaczają odległość Hamminga między wektorem wejściowym a każdym z p wektorów wzorcowych zakodowanych w wagach tej warstwy. Druga warstwa nosi nazwę MAXNET. Jest ona warstwą odpowiadającą sieci Hopfielda, której działanie omówiliś- my wcześniej. W warstwie tej dodaje się jednak sprzężenia zwrotne obejmujące ten sam neuron. Wagi w tych sprzężeniach są równe i. Wartości wag pozostałych neuronów tej warstwy dobiera się tak, aby działały hamująco, np. przyjmując ujemne ich wartości. W ten sposób w warstwie MAXNET następuje wygaszenie wszystkich wyjść oprócz tego, które było najsilniejsze w warstwie pierwszej. Neuron tej warstwy utożsamiany ze zwycięzcą, poprzez wagi neuronów wyjściowych o liniowej funkcji aktywacji, odtworzy wektor wyjściowy skojarzony z wektorem zakodowanym w warstwie pierwszej. a) ■ Rys. 6.31. Ilustracje do przykładu 6.7 Przykład 6.7 W celu zaprezentowania działania sieci Hamminga utworzyliśmy ciąg uczący w postaci binarnego zapisu graficznej reprezentacji kolejnych cyfr: 1, 2, 3 i 4 (rys. 6.3la). W pierwszej fazie sieć uczono, wykorzystując każdy z tych wzorców. Następnie na jej wejście podawano wektory, które reprezentowały zaszumione sygnały wzorcowe. Rezultaty przedstawiono na rysunkach 6.3lb, 6.31c. 6.31d. 6.31c. W symulacjach wykorzystano program NetLab [271J. który klasy odpowiadające cyfrom od 1 do 4 numeruje od 0 do 3. Liczby po prawej stronie ilustracji oznaczają stany neuronów wyjściowych dla każdej z klas wzorcowych. Jak można zauważyć, we wszystkich przypadkach sieć sklasyfikowała zaszumione obrazy prawidłowo, jeśli za właściwą miarę można uznać wrażenie podobieństwa odniesione za pomocą ludzkiego oka.